/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.emftext.language.office.office;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see org.emftext.language.office.office.OfficeFactory
 * @model kind="package"
 * @generated
 */
public interface OfficePackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "office";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://emftext.org/office";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "office";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  OfficePackage eINSTANCE = org.emftext.language.office.office.impl.OfficePackageImpl.init();

  /**
   * The meta object id for the '{@link org.emftext.language.office.office.impl.NamedElementImpl <em>Named Element</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.emftext.language.office.office.impl.NamedElementImpl
   * @see org.emftext.language.office.office.impl.OfficePackageImpl#getNamedElement()
   * @generated
   */
  int NAMED_ELEMENT = 3;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int NAMED_ELEMENT__NAME = 0;

  /**
   * The number of structural features of the '<em>Named Element</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int NAMED_ELEMENT_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link org.emftext.language.office.office.impl.OfficeModelImpl <em>Model</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.emftext.language.office.office.impl.OfficeModelImpl
   * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOfficeModel()
   * @generated
   */
  int OFFICE_MODEL = 0;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_MODEL__NAME = NAMED_ELEMENT__NAME;

  /**
   * The feature id for the '<em><b>Elements</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_MODEL__ELEMENTS = NAMED_ELEMENT_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Model</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_MODEL_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link org.emftext.language.office.office.impl.OfficeElementImpl <em>Element</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.emftext.language.office.office.impl.OfficeElementImpl
   * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOfficeElement()
   * @generated
   */
  int OFFICE_ELEMENT = 4;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_ELEMENT__NAME = NAMED_ELEMENT__NAME;

  /**
   * The number of structural features of the '<em>Element</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link org.emftext.language.office.office.impl.EmployeeImpl <em>Employee</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.emftext.language.office.office.impl.EmployeeImpl
   * @see org.emftext.language.office.office.impl.OfficePackageImpl#getEmployee()
   * @generated
   */
  int EMPLOYEE = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EMPLOYEE__NAME = OFFICE_ELEMENT__NAME;

  /**
   * The feature id for the '<em><b>Works In</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EMPLOYEE__WORKS_IN = OFFICE_ELEMENT_FEATURE_COUNT + 0;

  /**
   * The feature id for the '<em><b>Works With</b></em>' reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EMPLOYEE__WORKS_WITH = OFFICE_ELEMENT_FEATURE_COUNT + 1;

  /**
   * The number of structural features of the '<em>Employee</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EMPLOYEE_FEATURE_COUNT = OFFICE_ELEMENT_FEATURE_COUNT + 2;

  /**
   * The meta object id for the '{@link org.emftext.language.office.office.impl.OfficeImpl <em>Office</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.emftext.language.office.office.impl.OfficeImpl
   * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOffice()
   * @generated
   */
  int OFFICE = 2;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE__NAME = OFFICE_ELEMENT__NAME;

  /**
   * The number of structural features of the '<em>Office</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OFFICE_FEATURE_COUNT = OFFICE_ELEMENT_FEATURE_COUNT + 0;


  /**
   * Returns the meta object for class '{@link org.emftext.language.office.office.OfficeModel <em>Model</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Model</em>'.
   * @see org.emftext.language.office.office.OfficeModel
   * @generated
   */
  EClass getOfficeModel();

  /**
   * Returns the meta object for the containment reference list '{@link org.emftext.language.office.office.OfficeModel#getElements <em>Elements</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Elements</em>'.
   * @see org.emftext.language.office.office.OfficeModel#getElements()
   * @see #getOfficeModel()
   * @generated
   */
  EReference getOfficeModel_Elements();

  /**
   * Returns the meta object for class '{@link org.emftext.language.office.office.Employee <em>Employee</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Employee</em>'.
   * @see org.emftext.language.office.office.Employee
   * @generated
   */
  EClass getEmployee();

  /**
   * Returns the meta object for the reference '{@link org.emftext.language.office.office.Employee#getWorksIn <em>Works In</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Works In</em>'.
   * @see org.emftext.language.office.office.Employee#getWorksIn()
   * @see #getEmployee()
   * @generated
   */
  EReference getEmployee_WorksIn();

  /**
   * Returns the meta object for the reference list '{@link org.emftext.language.office.office.Employee#getWorksWith <em>Works With</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference list '<em>Works With</em>'.
   * @see org.emftext.language.office.office.Employee#getWorksWith()
   * @see #getEmployee()
   * @generated
   */
  EReference getEmployee_WorksWith();

  /**
   * Returns the meta object for class '{@link org.emftext.language.office.office.Office <em>Office</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Office</em>'.
   * @see org.emftext.language.office.office.Office
   * @generated
   */
  EClass getOffice();

  /**
   * Returns the meta object for class '{@link org.emftext.language.office.office.NamedElement <em>Named Element</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Named Element</em>'.
   * @see org.emftext.language.office.office.NamedElement
   * @generated
   */
  EClass getNamedElement();

  /**
   * Returns the meta object for the attribute '{@link org.emftext.language.office.office.NamedElement#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see org.emftext.language.office.office.NamedElement#getName()
   * @see #getNamedElement()
   * @generated
   */
  EAttribute getNamedElement_Name();

  /**
   * Returns the meta object for class '{@link org.emftext.language.office.office.OfficeElement <em>Element</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Element</em>'.
   * @see org.emftext.language.office.office.OfficeElement
   * @generated
   */
  EClass getOfficeElement();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  OfficeFactory getOfficeFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link org.emftext.language.office.office.impl.OfficeModelImpl <em>Model</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see org.emftext.language.office.office.impl.OfficeModelImpl
     * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOfficeModel()
     * @generated
     */
    EClass OFFICE_MODEL = eINSTANCE.getOfficeModel();

    /**
     * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference OFFICE_MODEL__ELEMENTS = eINSTANCE.getOfficeModel_Elements();

    /**
     * The meta object literal for the '{@link org.emftext.language.office.office.impl.EmployeeImpl <em>Employee</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see org.emftext.language.office.office.impl.EmployeeImpl
     * @see org.emftext.language.office.office.impl.OfficePackageImpl#getEmployee()
     * @generated
     */
    EClass EMPLOYEE = eINSTANCE.getEmployee();

    /**
     * The meta object literal for the '<em><b>Works In</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference EMPLOYEE__WORKS_IN = eINSTANCE.getEmployee_WorksIn();

    /**
     * The meta object literal for the '<em><b>Works With</b></em>' reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference EMPLOYEE__WORKS_WITH = eINSTANCE.getEmployee_WorksWith();

    /**
     * The meta object literal for the '{@link org.emftext.language.office.office.impl.OfficeImpl <em>Office</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see org.emftext.language.office.office.impl.OfficeImpl
     * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOffice()
     * @generated
     */
    EClass OFFICE = eINSTANCE.getOffice();

    /**
     * The meta object literal for the '{@link org.emftext.language.office.office.impl.NamedElementImpl <em>Named Element</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see org.emftext.language.office.office.impl.NamedElementImpl
     * @see org.emftext.language.office.office.impl.OfficePackageImpl#getNamedElement()
     * @generated
     */
    EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();

    /**
     * The meta object literal for the '{@link org.emftext.language.office.office.impl.OfficeElementImpl <em>Element</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see org.emftext.language.office.office.impl.OfficeElementImpl
     * @see org.emftext.language.office.office.impl.OfficePackageImpl#getOfficeElement()
     * @generated
     */
    EClass OFFICE_ELEMENT = eINSTANCE.getOfficeElement();

  }

} //OfficePackage
